package jmine.tec.utils.io;

import java.io.File;
import java.io.FilenameFilter;
import java.io.Serializable;

/**
 * Filtra arquivos baseado na extensao.
 * 
 * @author bolha
 */
public class ByExtensionFilenameFilter implements FilenameFilter, Serializable {

    /**
     * 
     */
    private static final long serialVersionUID = -6890948327339437486L;

    // extensao dos arquivos que devem ser aceitos
    private final String extension;

    /**
     * Construtor.
     * 
     * @param ext a extensao que deve aceitar.
     */
    public ByExtensionFilenameFilter(final String ext) {
        this.extension = ext;
    }

    /**
     * Testa se um arquivo deve ser includio na lista
     * 
     * @param dir diretorio onde esta o arquivo
     * @param name o nome do arquivo
     * @return true sse o arquivo tem a extensao aceita
     */
    public boolean accept(final File dir, final String name) {
        return name == null ? false : name.trim().endsWith(this.extension);
    }

}
